• 沒有找到結果。

第三章 工程知識建模

3.4 KF 最佳化功能

圖 3-14 增加溝槽

圖 3-15 目標規則

在實際工程設計問題中,常常會遇到在多目標函數的某些目標間存在矛 盾的情況,而設計者必須正確處理各目標函數之間的關係。對這類多目標函 數最佳化問題的研究,可用一個目標函數表示若干所需追求目標的加權和,

將多目標問題轉換化為單目標問題來求解。此時必須引入加權因子的概念或 其它的處理方式,以平衡各項指標,即各個子目標之間的相對重要性,以及 它們在單位及數量級上的差異。

2. 設計變數(Design variables)

設計變數於 KF 的 ug_optimize 類別中定義為一個範圍值,在定義範圍 內的值具有可變動性,如圖 3-16 所示。

圖 3-16 設計變數規則

一旦此設計變數確定後,則設計對象也就完全確定。所以最佳化設計是 研究如何合理的選擇這些設計變數值的一種現代設計方法。通常我們會將設 計變數設定在一個範圍值內,並且應用最佳化運算器自動進行設計變數值的 改變,使目標函數的結果值改變,直到設定的目標為止。

3. 約束條件(Constraints)

在最佳化設計中,可對設計變數值給定一個約束值。在 KF 程式中每個 約束條件必須指定約束對象,而約束值表示必須小於或大於此數值,類型表 示約束對象必須大於或小於此約束值,約束規則如圖 3-17 所示。

圖 3-17 約束條件規則

UG 的最佳化運算器(Optimizer)將更新設計變數重新計算的結果,其必 需滿足的限制條件。因此,在每一迭代過程中,如果其結果超出某一約束條 件,則依據此一設計參數所得到的模型是無效的,此時,最佳化運算器會對 設計參數作出修正,以回到滿足約束條件的狀態。

4. 設計常數(Design constant)

設計變數與設計常數不同的地方是設計變數定義一個值的範圍,此值可 在定義的範圍內進行修改;而設計常數則是定義一個固定的值,可透過輸入 的方式或寫入內部程式,設計常數一但定義後,則無法修改。在最佳化設計 中,可使用此設計常數進行桿頭之建構,但是在最佳化運算過程中設計常數 將不會隨的設計上的需求而改變參數值。

5. 最佳化的控制參數(Optimizer controls)

KF 所提供的最佳化的控制參數用於判斷中止迭代的條件。此判斷方式 有下列五種形式:

(1) 當目標函數在相鄰兩點迭代的相差值小於計算精度時,中止迭代。此於 KF 的 ug_optimize 類中必須給定的絕對收斂公差(Absolute convergence

tolerance)值。

(2) 設計變數在相鄰兩點迭代的比值,小於相對收斂公差,則進行收斂。此 於 KF 的 ug_optimize 類中必須給定的相對收斂公差(Relative convergence tolerance)值。

(3) 設定最佳化過程中的最大允許約束差異值,主要目的是在最佳化過程 中,即使違反約束限制量,但在此一設定值內,若有最佳化的結果,則 仍視為可接受的最佳化結果。此於 KF 的 ug_optimize 類為最大約束超過 量(Maximum constraint violation)。

(4) 定義迭代次數的目的在於最佳化模型有錯誤時,或者數值計算法無法收 斂的情況下,使數值計算法不會無窮盡地迭代。此於 KF 的 ug_optimize 類中必須給定的最大迭代次數(Maximum Number Iterations)。

(5) 設計變數百分比變異量。此一參數用於定義桿頭上每一設計變數進行最 佳化迭代時的設計變數變異量,其單位為百分比,即此一變異量是以所 設定的設計變數的值域量乘上設定的百分比值進行設計參數的變更。舉 例來說,若一設計變數的起始值為 10,其值域為 9~11,設計變數變異 量 百 分 比 設 定 為 20% , 則 此 一 設 計 變 數 的 起 始 迭 代 變 異 量 為 (11-9)*0.2=0.4。

定義上述五個要素後,UG/KF 會自動改變設計變數的值,再將約束條件及 目標送到最佳化運算器中,若其運算結果未收斂,則系統會返回一個新的設計變 數值用於下一次的最佳化迭代。但若其運算結果收斂,則系統停止計算,並將其 結果輸出。最佳化過程如下所示:

1. 更新 UG 模型,其更新設計變數值。

2. 基於 UG 模型計算約束條件與目標。

3. 將計算出的約束及目標值傳送到最佳化運算器。

4. 最佳化運算器判斷其評估值是否收斂,若不收斂,則最佳化運算器返回 新的設計變數值用於下一次的迭代。

相關文件